package com.daidai.service;

import com.daidai.model.Activity;
import com.daidai.model.ActivityDTO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Author: Mr.Chen
 * Date: 2022/08/01 16:00
 * Description:
 */
public interface ActivityService {
    Activity findActivityById(@Param("activityId") int activityId);

    ActivityDTO findActivityAndNameById(@Param("activityId") int activityId);

    List<Activity> findAllActivity();

    List<Activity> findActivityByAssociationId(@Param("associationId") int associationId);

    List<Activity> findActivityByAssociationType(@Param("associationType") int associationType);

    List<ActivityDTO> findActivityAndNameByAssociationType(@Param("associationType") int associationType);

    List<ActivityDTO> findAllActivityAndName();

    List<Activity> findLastActivity();

    List<ActivityDTO> findAllActivityApply();

    void addActivity(@Param("title") String title,
                     @Param("description") String description,
                     @Param("associationId") int associationId,
                     @Param("startTime") String startTime,
                     @Param("endTime") String endTime,
                     @Param("location") String location,
                     @Param("material") float material,
                     @Param("material") String picture);

    void deleteActivity(@Param("activityId") int activityId);

    void updateActivityStatus(@Param("activityStatus") int activityStatus, @Param("activityId") int activityId);

    void updateActivity(@Param("title") String title,
                        @Param("description") String description,
                        @Param("associationId") int associationId,
                        @Param("startTime") String startTime,
                        @Param("endTime") String endTime,
                        @Param("location") String location,
                        @Param("picture") String picture,
                        @Param("material") float material,
                        @Param("activityStatus") int activityStatus,
                        @Param("activityId") int activityId);

    void applyPass(@Param("activityId") int activityId);

    void applyRefuse(@Param("activityId") int activityId);
}
